package decodificacion;

public class DecodificacionBase64 {
public static byte[] decode(String entrada) {
    	
    	char[] diccionari = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
    	int[] diccionariInt   = new int[128];

        for(int i=0; i< diccionari.length; i++){
        	diccionariInt[diccionari[i]]= i;
        }
    	
    	byte[] salida = new byte[entrada.length()*6];
    	
        for(int i=0, j=0; i< entrada.length(); i++){
            int seisPixels = diccionariInt[entrada.charAt(i)];

            salida[j++] = (byte) ((seisPixels >> 5) & 1);
            salida[j++] = (byte) ((seisPixels >> 4) & 1);
            salida[j++] = (byte) ((seisPixels >> 3) & 1);
            salida[j++] = (byte) ((seisPixels >> 2) & 1);
            salida[j++] = (byte) ((seisPixels >> 1) & 1);
            salida[j++] = (byte) (seisPixels & 1);
        }

        return salida;
    }

}
